Les options RESP RESP2 et la fonction DFHRESP
L’option RESP est utilisable sur n’importe quelle commande CICS.
Elle a pour effet de désactiver une commande HANDLE CONDITION préalablement positionnée, et de recopier le contenu du code retour EIBRESP dans la zone de travail spécifiée.
Cette option permet de tester de manière structurée les conditions exceptionnelles émises lors du traitement de la commande.
L’option RESP génère implicitement l’option NOHANDLE
Pour mettre en oeuvre l’option RESP, il suffit de coder cette option sur la commande CICS pour laquelle on veut intercepter les erreurs, et de faire suivre cette commande par des tests sur la valeur retournée dans le champ RESP
Codification de l’option RESP:
COMMANDE CICS
[OPTION (paramètre)]
...
[RESP (zone-donnée)]
[RESP2 (zone-donnée)]
RESP(zone-donnée):
Option mettant dans zone-donnée la valeur numérique de la condition rencontrée. Cette valeur est une copie du champ EIBRESP
format de zone-donnée : un mot binaire PIC S9(8) COMP.
RESP2(zone-donnée):
Option mettant dans zone-donnée une précision sur la réponse obtenue sur certaines commandes. Cette valeur est une copie du champ EIBRESP2 . Les codes RESP2 sont indiqués sur les commandes qui les produisent.
format de zone-donnée: un mot binaire PIC S9(8) COMP.
La fonction DFHRESP:
La fonction DFHRESP permet de tester les valeurs RESP de façon symbolique.
Codification de la fonction DFHRESP:
zone-donnée = DFHRESP(nom-condition)
zone-donnée:
Zone contenant la valeur numérique de la condition rencontrée. Cette zone est celle précisée sur l’option RESP (c’est la zone remplie par l’option RESP)
La zone peut être le champ EIBRESP .
format de zone-donnée: PIC S9(8) COMP
DFHRESP(nom-condition):
Condition à tester sous forme symbolique.
Les conditions sont indiquées sur la syntaxe de chaque commande CICS. Les valeurs sont par exemple : NORMAL, NOTFND, DUPREC, etc.
La fonction est généralement ytilisée dans un test de la division PROCEDURE.
Elle peut également être employée dans la division DATA, associée à la cause VALUE de la définition d’une donnée numérique, ou la clause VALUE d’une nom-condition (niveau 88).
Chaque fonction DFHRESP présente dans le programme source est remplacée par la valeur numérique correspondant à la condition sympbolique lors de l’étape de translation.
Exemple: utilisation de l’option RESP sur une commande RECEIVE MAP
WORKING-STORAGE SECTION.
01 CODE-RETOUR PIC S9(8) COMP.
PROCEDURE DIVISION
EXEC CICS RECEIVE
MAP(NOM-MAP)
MAPSET(NOM-MAPSET)
INTO(ZONE-MAP)
RESP(CODE-RETOUR)
END-EXEC
IF CODE-RETOUR = DFHRESP(MAPFAIL)
GO TO RESTAURER-ECRAN
END-IF
IF CODE-RETOUR NOT = DFHRESP(NORMAL)
GO TO AUTRES-ERREURS
END-IF
Exemple: utilisation de la zone EIBRESP sur une commande RECEIVE MAP
WORKING-STORAGE SECTION.
01 CODE-RETOUR PIC S9(8) COMP.
PROCEDURE DIVISION
EXEC CICS RECEIVE
MAP(NOM-MAP)
MAPSET(NOM-MAPSET)
INTO(ZONE-MAP)
END-EXEC
IF EIBRESP = DFHRESP(MAPFAIL)
GO TO RESTAURER-ECRAN
END-IF
IF EIBRESP NOT = DFHRESP(NORMAL)
GO TO AUTRES-ERREURS
END-IF